// pages/login/login.js
import request from "../../utils/request"

// 登录流程
// 1. 收集表单数据
// 2. 前端验证
// 验证用户信息(账号 , 密码) 是否合法
// 前端验证通过了, 发送请求(账号 , 密码)给服务器
// 前端验证不通过, 提示用户 , 不需要发请求给后端
// 3. 后端验证
// 验证用户是否存在
// 用户不存在直接返回, 告诉前端 用户不存在
// 用户存在需要验证密码是否正确
// 密码不正确返回给前端提示密码不正确
// 密码正确返回给前端数据, 提示用户登录成功(会携带用户的相关信息)




Page({

    /**
     * 页面的初始数据
     */
    data: {
        phone: '', // 手机号
        password: '', // 密码
    },

    // 表单内容发生改变的回调
    handleInput(e) {
        let value = e.detail.value;
        let type = e.currentTarget.id;
        this.setData({
            [type]: value
        })
    },


    // 登录的回调
    async login() {
        let { phone, password } = this.data;
        // 前端验证
        if (!phone) {
            wx.showToast({
                title: '手机号不能为空',
                icon: 'error'
            });
            return;
        }
        let phoneReg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
        if (!phoneReg.test(phone)) {
            wx.showToast({
                title: '手机号格式错误',
                icon: 'error'
            });
            return;
        }
        if (!password) {
            wx.showToast({
                title: '密码不能为空',
                icon: 'error'
            });
            return;
        }


        // 后端验证
        let res = await request('/login/cellphone', { phone, password });
        console.log(res);
        if (res.code === 200) {
            wx.showToast({
                title: '登录成功',
                icon: 'success'
            });

            // 将用户的信息存储到本地
            wx.setStorageSync('userInfo', JSON.stringify(res.profile));


            // 跳转到个人中心页面
            wx.reLaunch({
                url: '/pages/personal/personal',
            });


        } else if (res.code === 400) {
            wx.showToast({
                title: '手机号错误',
                icon: 'error'
            });
        } else if (res.code === 502) {
            wx.showToast({
                title: '密码错误',
                icon: 'error'
            });
        } else {
            wx.showToast({
                title: '登录失败, 请重新登录',
                icon: 'error'
            });
        }
    },



    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})